/**
 * \file   pNode.h
 * \author Babinot Alexandre, Guilet Pierre
 *  \version 1.0
 *  \date 24 janvier 2012
 */
#ifndef PNODE_H
#define PNODE_H
#include<vector>
#include "node.h"
template<class T>
class Node;

/**
 *\class pNode
 *
 * \brief classe permettant de representer la valeur d'une clé d'un noeud ainsi que le pointeur situé à sa gauche
 */ 
template<class T>	
class pNode{

private:
Node<T> * pointerGauche;
int valeur;


public:
    /**
     * \fn pNode(T valeur)
     *  \brief Constructeur d'un nouveau pNode
     *  \param valeur valeur de l'élément
     */
	pNode(T valeur);
    /**
     * \fn getValeur()
     *  \brief Récupère la valeur du Pnode
     *  \return la valeur
     */
	T getValeur();
    /**
     * \fn getPointeur()
     *  \brief Actualise le pointeur
     *  \param n pointeur vers un noeud enfant
     */
	void setPointeur(Node<T>* n);

    /**
     * \fn getPointeur()
     *  \brief Récupère le pointeur
     *  \return retourne le pointeur vers un noeud enfant
     */
	Node<T>* getPointeur();
};
using namespace std;
template<class T>
pNode<T>::pNode(T valeur){
	this->valeur = valeur;
	this->pointerGauche = 0;
}
template<class T>
T pNode<T>::getValeur(){
	return this->valeur;
}
template<class T>
void pNode<T>::setPointeur(Node<T>* node){
	this->pointerGauche=node;
}
template<class T>
Node<T>* pNode<T>::getPointeur(){
	return this->pointerGauche;
}


#endif
